/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.customer.core.service;


import info.peigen.hotpot.business.account.facade.QueryAccountServiceFacade;
import info.peigen.hotpot.business.customer.core.service.processor.active.CustomerActivePartnerProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.active.CustomerActiveProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.check.CustomerLoginCheckProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.check.CustomerRegisterCheckProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.check.CustomerUpdateCheckProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.login.CustomerLoginProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.login.CustomerLoginResultProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.register.CustomerCreateAccountProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.register.CustomerRegisterProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.register.CustomerRegisterResultProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.store.StoreCustomerProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.update.CustomerUpdateAvatarProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.update.CustomerUpdateMobileProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.update.CustomerUpdateNicknameProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.update.CustomerUpdateResultProcessor;
import info.peigen.hotpot.common.service.base.processor.AbstractProcessorService;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import lombok.extern.slf4j.Slf4j;
import org.noear.solon.annotation.Inject;

/**
 * <b>(AbstractCustomerService)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/7/29
 */
@SuppressWarnings("ALL")
@Slf4j
@FieldDefaults(level = AccessLevel.PROTECTED)
public abstract class AbstractCustomerService extends AbstractProcessorService {
    // Active Processors
    @Inject
    CustomerActiveProcessor        customerActiveProcessor;
    @Inject
    CustomerActivePartnerProcessor customerActivePartnerProcessor;

    // Business Processors
    @Inject
    CustomerRegisterProcessor      customerRegisterProcessor;
    @Inject
    CustomerLoginProcessor         customerLoginProcessor;
    @Inject
    CustomerCreateAccountProcessor customerCreateAccountProcessor;

    // Check Processors
    @Inject
    CustomerRegisterCheckProcessor customerRegisterCheckProcessor;
    @Inject
    CustomerLoginCheckProcessor    customerLoginCheckProcessor;
    @Inject
    CustomerUpdateCheckProcessor   customerUpdateCheckProcessor;

    // Edit Processors
    @Inject
    CustomerUpdateMobileProcessor   customerUpdateMobileProcessor;
    @Inject
    CustomerUpdateAvatarProcessor   customerUpdateAvatarProcessor;
    @Inject
    CustomerUpdateNicknameProcessor customerUpdateNicknameProcessor;

    // Store Processors
    @Inject
    StoreCustomerProcessor storeCustomerProcessor;

    // Result Processors
    @Inject
    CustomerUpdateResultProcessor   customerUpdateResultProcessor;
    @Inject
    CustomerLoginResultProcessor    customerLoginResultProcessor;
    @Inject
    CustomerRegisterResultProcessor customerRegisterResultProcessor;

    // Convert Processors

    // Account
    @Inject
    QueryAccountServiceFacade queryAccountServiceFacade;
}